package com.dhcc.DRGsHosp.application.impl;

import java.util.List;
import java.util.Set;

import javax.inject.Named;

import org.dayatang.querychannel.JdbcTemplateObj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import com.dhcc.DRGsHosp.application.MrqScoreDetailApplication;
import com.dhcc.DRGsHosp.core.domain.MrqScoreDetail;

/**
 * 病案质控违规项扣分明细 的 数据访问层--实体类
 * @ClassName: MrqScoreDetailApplicationImpl  
 * @Description ： 病案质控违规项扣分明细    
 * @Date: 2018年7月26日 下午4:14:10  
 * @Author QiaoYiLong 
 * @Version 3.1.1 DHC-DRG
 */

@Named
@Transactional
public class MrqScoreDetailApplicationImpl implements MrqScoreDetailApplication {

	@Autowired
	private JdbcTemplateObj jdbcTemplateObj;
	
	/**
	 *  功能描述：  根据id查询一个 病案质控违规项扣分明细
	 *  @Author QiaoYiLong
	 *  @Date:2018年7月26日下午4:01:36
	 */
	@Override
	public MrqScoreDetail getMrqScoreDetail(String id) {
		return MrqScoreDetail.get(MrqScoreDetail.class, id);
	}
	/**
	 *  功能描述： 添加一个 病案质控违规项扣分明细
	 *  @Author QiaoYiLong 
	 *  @Date:2018年7月26日下午4:03:57
	 */
	@Override
	public void createMrqScoreDetail(MrqScoreDetail mrqScoreDetail) {
		mrqScoreDetail.save();
	}
	/**
	 *  功能描述： 修改一个 病案质控违规项扣分明细
	 *  @Author QiaoYiLong
	 *  @Date:2018年7月26日下午4:07:22
	 */
	@Override
	public void updateMrqScoreDetail(MrqScoreDetail mrqScoreDetail) {
		mrqScoreDetail.save();
	}
	/**
	 *  功能描述：删除一个  病案质控违规项扣分明细
	 *  @Author QiaoYiLong 
	 *  @Date:2018年7月26日下午4:08:06
	 */
	@Override
	public void removeMrqScoreDetail(MrqScoreDetail mrqScoreDetail) {
		if( mrqScoreDetail != null ){
			mrqScoreDetail.remove();
		}
	}
	/**
	 *  功能描述：删除一个病例ID为pmainIndex的  病案质控违规项扣分明细
	 *  @Author QiaoYiLong
	 *  @param pmainIndex  病例ID
	 *  @Date:2018年7月30日下午2:50:03
	 */
	@Override
	public void removeMrqScoreDetailByPmainIndex(String pmainIndex) {
		if( pmainIndex != null && !"".equals(pmainIndex) ){
			String sql = new String("delete from drgs.MRQ_SCORE_DETAIL score_detail where score_detail.PMAININDEX = '"+pmainIndex+"' ");
			jdbcTemplateObj.update(sql);
		}
	}
	/**
	 *  功能描述：删除多个  病案质控违规项扣分明细
	 *  @Author QiaoYiLong
	 *  @Date:2018年7月26日下午4:08:40
	 */
	@Override
	public void removeMrqScoreDetails(Set<MrqScoreDetail> mrqScoreDetails) {
		for( MrqScoreDetail mrqScoreDetail : mrqScoreDetails){
			if( mrqScoreDetail != null ){
				mrqScoreDetail.remove();
			}
		}
	}
	/**
	 * 	功能描述： 取得全部的 病案质控违规项扣分明细
	 *  @Author QiaoYiLong 
	 *  @Date:2018年7月26日下午4:09:10
	 */
	@Override
	public List<MrqScoreDetail> findAllMrqScoreDetail() {
		return MrqScoreDetail.findAll(MrqScoreDetail.class);
	}

}
